package com.project.mapper;

import com.project.bean.UserBean;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;

/**
 * 用户的mapper接口
 */

public interface IUserMapper {

    /**
     * 添加用户
     * @param user
     */
    public  void  add(UserBean user);

    /**
     * 按照id删除用户
     * @param id
     */
    public  void  del(int id);

    /**
     * 按照id修改密码
     * @param id id
     * @param pwd  密码
     */
    public  void  update(@Param("userId")int id,
                         @Param("pwd") String pwd);


    public List<UserBean> findAll();

    /**
     * 按名字模糊查询
     * @param name
     * @return
     */
    public  List<UserBean> findByName(String name);

    /**
     * 按生日查询
     * @param starDate
     * @param endDate
     * @return
     */
    public  List<UserBean> findByBirthday(@Param("startDate") LocalDate starDate,
                                          @Param("endDate") LocalDate endDate);

    /**
     * 批量添加
     * @param list
     */
    public  void  addMore(@Param("list") List<UserBean>list);

    /**
     * 批量删除
     * @param idArray
     */
    public  void  delMore(@Param("idArray")int[] idArray);

    /**
     * 动态条件查询
     * @param name
     * @param startDate
     * @param endDate
     * @return
     */
    public  List<UserBean>findByItem(@Param("name") String name,
                                     @Param("startDate")LocalDate startDate,
                                     @Param("endDate")LocalDate endDate);

    /**
     * 分页查询当前页数据
     * @param startRow 起始记录数
     * @param pageSize 每页显示记录数
     * @return 用户集合
     */
    public  List<UserBean>cutAllList(@Param("startRow") int startRow,
                                     @Param("pageSize")int pageSize);

    /**
     * 查询用户数量
     * @return 用户数量
     */
    public  int cutAllCount();





}


